package com.kgc.est.controller;

import com.kgc.est.feignService.EvaluateService;
import com.kgc.est.utils.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

@RestController
@RequestMapping("/api/evaluate")
@Api(value = "故障评估表接口")
public class EvaluateController {

    Logger log = LoggerFactory.getLogger(EvaluateController.class);

    @Autowired
    private EvaluateService evaluateService;

    /**
     * 根据商品类型id查询出这个商品对应的故障
     * @param modelId   //商品类型id
     * @return
     */
    @ApiOperation(value = "展示故障列表接口")
    @GetMapping("/specList")
    public Result specList(Long modelId){
        log.info("商品类型id：{}",modelId);
        return evaluateService.specList(modelId);
    }


    /**
     * 根据用户选择的维修项，计算维修需要的价格
     *      实现步骤：
     *          屏幕异常：400
     *              屏幕损坏： 100%  =400
     *          电池异常：
     *          网络异常：
     *          。。。
     *
     *              需要把所有的价格计算出来，然后保存到evaluate表中
     *
     *          但现在的条件只有：
     *              商品id
     *              异常项id
     *
     *           怎么得到异常大类的价格
     * @param modelId
     * @param optionIds
     * @param request
     * @return
     */
    @ApiOperation(value = "估价接口")
    @PostMapping("/assess")
    public Result assess(Long modelId, String optionIds, HttpServletRequest request){
        String token = request.getHeader("token");
        log.info("商品维修评估接口参数：modelId：{}，optionIds：{}，token：{}",modelId,optionIds,token);
        return evaluateService.assess(modelId,optionIds,token);
    }

    @GetMapping("/{id}/assessInfo")
    public Result assessInfo(@PathVariable("id")Long id){
        log.info("评估信息id：{}",id);
        return evaluateService.assessInfo(id);
    }

}
